using System;
using System.Collections.Generic;
using System.Text;
using SharpMud.MudLib.Common.Resourcing;
using SharpMud.Server.Systems;
using SharpMud.MudLib.Common;
using SharpMud.MudLib.Common.Entities.Players.Session;
using SharpMud.MudLib.Common.Entities;

namespace SharpMud.MudLib.Common.Interaction.Commands
{
    /// <summary>
    /// 
    /// </summary>
    public interface ICommandManager : IGuidIdentifiedResourceHost, IUriIdentifiedResourceHost, IServerSystem
    {
        /// <summary>
        /// 
        /// </summary>
        /// <param name="actor"></param>
        /// <param name="commandLine"></param>
        void ExecuteCommand(ICharacter actor, string commandLine);
    }

    /// <summary>
    /// 
    /// </summary>
    public interface ICommandHandle
    {
        string Name { get;}

        

        void AttemptExecute(ICharacter actor, string commandLine);
        
        void AttemptExecute(ICharacter actor, string commandLine, ICharacter authority);
    }

    /// <summary>
    /// 
    /// </summary>
    public interface ICommandExecutionAlias
    {
        
    }
}
